/*
 *
 *    Copyright (c) 2022 Project CHIP Authors
 *
 *    Licensed under the Apache License, Version 2.0 (the "License");
 *    you may not use this file except in compliance with the License.
 *    You may obtain a copy of the License at
 *
 *        http://www.apache.org/licenses/LICENSE-2.0
 *
 *    Unless required by applicable law or agreed to in writing, software
 *    distributed under the License is distributed on an "AS IS" BASIS,
 *    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 *    See the License for the specific language governing permissions and
 *    limitations under the License.
 */

// THIS FILE IS GENERATED BY ZAP

#import "../MCCluster.h"
#import "MCAttributeObjects.h"
#import "MCCommandObjects.h"
#import <Foundation/Foundation.h>

#ifndef MCClusterObjects_h
#define MCClusterObjects_h

// OnOff cluster:

@interface MCOnOffCluster : MCCluster

// OnOff cluster commands:

/**
 * @brief Returns non-nil pointer to MCOnOffClusterOffCommand if supported, nil otherwise.
 */
- (MCOnOffClusterOffCommand * _Nullable)offCommand;

/**
 * @brief Returns non-nil pointer to MCOnOffClusterOnCommand if supported, nil otherwise.
 */
- (MCOnOffClusterOnCommand * _Nullable)onCommand;

/**
 * @brief Returns non-nil pointer to MCOnOffClusterToggleCommand if supported, nil otherwise.
 */
- (MCOnOffClusterToggleCommand * _Nullable)toggleCommand;

/**
 * @brief Returns non-nil pointer to MCOnOffClusterOffWithEffectCommand if supported, nil otherwise.
 */
- (MCOnOffClusterOffWithEffectCommand * _Nullable)offWithEffectCommand;

/**
 * @brief Returns non-nil pointer to MCOnOffClusterOnWithRecallGlobalSceneCommand if supported, nil otherwise.
 */
- (MCOnOffClusterOnWithRecallGlobalSceneCommand * _Nullable)onWithRecallGlobalSceneCommand;

/**
 * @brief Returns non-nil pointer to MCOnOffClusterOnWithTimedOffCommand if supported, nil otherwise.
 */
- (MCOnOffClusterOnWithTimedOffCommand * _Nullable)onWithTimedOffCommand;

// OnOff cluster attributes:

/**
 * @brief Returns non-nil pointer to MCOnOffClusterOnOffAttribute if supported, nil otherwise.
 */
- (MCOnOffClusterOnOffAttribute * _Nullable)onOffAttribute;

/**
 * @brief Returns non-nil pointer to MCOnOffClusterGlobalSceneControlAttribute if supported, nil otherwise.
 */
- (MCOnOffClusterGlobalSceneControlAttribute * _Nullable)globalSceneControlAttribute;

/**
 * @brief Returns non-nil pointer to MCOnOffClusterOnTimeAttribute if supported, nil otherwise.
 */
- (MCOnOffClusterOnTimeAttribute * _Nullable)onTimeAttribute;

/**
 * @brief Returns non-nil pointer to MCOnOffClusterOffWaitTimeAttribute if supported, nil otherwise.
 */
- (MCOnOffClusterOffWaitTimeAttribute * _Nullable)offWaitTimeAttribute;

/**
 * @brief Returns non-nil pointer to MCOnOffClusterStartUpOnOffAttribute if supported, nil otherwise.
 */
- (MCOnOffClusterStartUpOnOffAttribute * _Nullable)startUpOnOffAttribute;

/**
 * @brief Returns non-nil pointer to MCOnOffClusterGeneratedCommandListAttribute if supported, nil otherwise.
 */
- (MCOnOffClusterGeneratedCommandListAttribute * _Nullable)generatedCommandListAttribute;

/**
 * @brief Returns non-nil pointer to MCOnOffClusterAcceptedCommandListAttribute if supported, nil otherwise.
 */
- (MCOnOffClusterAcceptedCommandListAttribute * _Nullable)acceptedCommandListAttribute;

/**
 * @brief Returns non-nil pointer to MCOnOffClusterAttributeListAttribute if supported, nil otherwise.
 */
- (MCOnOffClusterAttributeListAttribute * _Nullable)attributeListAttribute;

/**
 * @brief Returns non-nil pointer to MCOnOffClusterFeatureMapAttribute if supported, nil otherwise.
 */
- (MCOnOffClusterFeatureMapAttribute * _Nullable)featureMapAttribute;

/**
 * @brief Returns non-nil pointer to MCOnOffClusterClusterRevisionAttribute if supported, nil otherwise.
 */
- (MCOnOffClusterClusterRevisionAttribute * _Nullable)clusterRevisionAttribute;
@end

// LevelControl cluster:

@interface MCLevelControlCluster : MCCluster

// LevelControl cluster commands:

/**
 * @brief Returns non-nil pointer to MCLevelControlClusterMoveToLevelCommand if supported, nil otherwise.
 */
- (MCLevelControlClusterMoveToLevelCommand * _Nullable)moveToLevelCommand;

/**
 * @brief Returns non-nil pointer to MCLevelControlClusterMoveCommand if supported, nil otherwise.
 */
- (MCLevelControlClusterMoveCommand * _Nullable)moveCommand;

/**
 * @brief Returns non-nil pointer to MCLevelControlClusterStepCommand if supported, nil otherwise.
 */
- (MCLevelControlClusterStepCommand * _Nullable)stepCommand;

/**
 * @brief Returns non-nil pointer to MCLevelControlClusterStopCommand if supported, nil otherwise.
 */
- (MCLevelControlClusterStopCommand * _Nullable)stopCommand;

/**
 * @brief Returns non-nil pointer to MCLevelControlClusterMoveToLevelWithOnOffCommand if supported, nil otherwise.
 */
- (MCLevelControlClusterMoveToLevelWithOnOffCommand * _Nullable)moveToLevelWithOnOffCommand;

/**
 * @brief Returns non-nil pointer to MCLevelControlClusterMoveWithOnOffCommand if supported, nil otherwise.
 */
- (MCLevelControlClusterMoveWithOnOffCommand * _Nullable)moveWithOnOffCommand;

/**
 * @brief Returns non-nil pointer to MCLevelControlClusterStepWithOnOffCommand if supported, nil otherwise.
 */
- (MCLevelControlClusterStepWithOnOffCommand * _Nullable)stepWithOnOffCommand;

/**
 * @brief Returns non-nil pointer to MCLevelControlClusterStopWithOnOffCommand if supported, nil otherwise.
 */
- (MCLevelControlClusterStopWithOnOffCommand * _Nullable)stopWithOnOffCommand;

/**
 * @brief Returns non-nil pointer to MCLevelControlClusterMoveToClosestFrequencyCommand if supported, nil otherwise.
 */
- (MCLevelControlClusterMoveToClosestFrequencyCommand * _Nullable)moveToClosestFrequencyCommand;

// LevelControl cluster attributes:

/**
 * @brief Returns non-nil pointer to MCLevelControlClusterCurrentLevelAttribute if supported, nil otherwise.
 */
- (MCLevelControlClusterCurrentLevelAttribute * _Nullable)currentLevelAttribute;

/**
 * @brief Returns non-nil pointer to MCLevelControlClusterRemainingTimeAttribute if supported, nil otherwise.
 */
- (MCLevelControlClusterRemainingTimeAttribute * _Nullable)remainingTimeAttribute;

/**
 * @brief Returns non-nil pointer to MCLevelControlClusterMinLevelAttribute if supported, nil otherwise.
 */
- (MCLevelControlClusterMinLevelAttribute * _Nullable)minLevelAttribute;

/**
 * @brief Returns non-nil pointer to MCLevelControlClusterMaxLevelAttribute if supported, nil otherwise.
 */
- (MCLevelControlClusterMaxLevelAttribute * _Nullable)maxLevelAttribute;

/**
 * @brief Returns non-nil pointer to MCLevelControlClusterCurrentFrequencyAttribute if supported, nil otherwise.
 */
- (MCLevelControlClusterCurrentFrequencyAttribute * _Nullable)currentFrequencyAttribute;

/**
 * @brief Returns non-nil pointer to MCLevelControlClusterMinFrequencyAttribute if supported, nil otherwise.
 */
- (MCLevelControlClusterMinFrequencyAttribute * _Nullable)minFrequencyAttribute;

/**
 * @brief Returns non-nil pointer to MCLevelControlClusterMaxFrequencyAttribute if supported, nil otherwise.
 */
- (MCLevelControlClusterMaxFrequencyAttribute * _Nullable)maxFrequencyAttribute;

/**
 * @brief Returns non-nil pointer to MCLevelControlClusterOptionsAttribute if supported, nil otherwise.
 */
- (MCLevelControlClusterOptionsAttribute * _Nullable)optionsAttribute;

/**
 * @brief Returns non-nil pointer to MCLevelControlClusterOnOffTransitionTimeAttribute if supported, nil otherwise.
 */
- (MCLevelControlClusterOnOffTransitionTimeAttribute * _Nullable)onOffTransitionTimeAttribute;

/**
 * @brief Returns non-nil pointer to MCLevelControlClusterOnLevelAttribute if supported, nil otherwise.
 */
- (MCLevelControlClusterOnLevelAttribute * _Nullable)onLevelAttribute;

/**
 * @brief Returns non-nil pointer to MCLevelControlClusterOnTransitionTimeAttribute if supported, nil otherwise.
 */
- (MCLevelControlClusterOnTransitionTimeAttribute * _Nullable)onTransitionTimeAttribute;

/**
 * @brief Returns non-nil pointer to MCLevelControlClusterOffTransitionTimeAttribute if supported, nil otherwise.
 */
- (MCLevelControlClusterOffTransitionTimeAttribute * _Nullable)offTransitionTimeAttribute;

/**
 * @brief Returns non-nil pointer to MCLevelControlClusterDefaultMoveRateAttribute if supported, nil otherwise.
 */
- (MCLevelControlClusterDefaultMoveRateAttribute * _Nullable)defaultMoveRateAttribute;

/**
 * @brief Returns non-nil pointer to MCLevelControlClusterStartUpCurrentLevelAttribute if supported, nil otherwise.
 */
- (MCLevelControlClusterStartUpCurrentLevelAttribute * _Nullable)startUpCurrentLevelAttribute;

/**
 * @brief Returns non-nil pointer to MCLevelControlClusterGeneratedCommandListAttribute if supported, nil otherwise.
 */
- (MCLevelControlClusterGeneratedCommandListAttribute * _Nullable)generatedCommandListAttribute;

/**
 * @brief Returns non-nil pointer to MCLevelControlClusterAcceptedCommandListAttribute if supported, nil otherwise.
 */
- (MCLevelControlClusterAcceptedCommandListAttribute * _Nullable)acceptedCommandListAttribute;

/**
 * @brief Returns non-nil pointer to MCLevelControlClusterAttributeListAttribute if supported, nil otherwise.
 */
- (MCLevelControlClusterAttributeListAttribute * _Nullable)attributeListAttribute;

/**
 * @brief Returns non-nil pointer to MCLevelControlClusterFeatureMapAttribute if supported, nil otherwise.
 */
- (MCLevelControlClusterFeatureMapAttribute * _Nullable)featureMapAttribute;

/**
 * @brief Returns non-nil pointer to MCLevelControlClusterClusterRevisionAttribute if supported, nil otherwise.
 */
- (MCLevelControlClusterClusterRevisionAttribute * _Nullable)clusterRevisionAttribute;
@end

// WakeOnLan cluster:

@interface MCWakeOnLanCluster : MCCluster

// WakeOnLan cluster commands:

// WakeOnLan cluster attributes:

/**
 * @brief Returns non-nil pointer to MCWakeOnLanClusterMACAddressAttribute if supported, nil otherwise.
 */
- (MCWakeOnLanClusterMACAddressAttribute * _Nullable)macAddressAttribute;

/**
 * @brief Returns non-nil pointer to MCWakeOnLanClusterLinkLocalAddressAttribute if supported, nil otherwise.
 */
- (MCWakeOnLanClusterLinkLocalAddressAttribute * _Nullable)linkLocalAddressAttribute;

/**
 * @brief Returns non-nil pointer to MCWakeOnLanClusterGeneratedCommandListAttribute if supported, nil otherwise.
 */
- (MCWakeOnLanClusterGeneratedCommandListAttribute * _Nullable)generatedCommandListAttribute;

/**
 * @brief Returns non-nil pointer to MCWakeOnLanClusterAcceptedCommandListAttribute if supported, nil otherwise.
 */
- (MCWakeOnLanClusterAcceptedCommandListAttribute * _Nullable)acceptedCommandListAttribute;

/**
 * @brief Returns non-nil pointer to MCWakeOnLanClusterAttributeListAttribute if supported, nil otherwise.
 */
- (MCWakeOnLanClusterAttributeListAttribute * _Nullable)attributeListAttribute;

/**
 * @brief Returns non-nil pointer to MCWakeOnLanClusterFeatureMapAttribute if supported, nil otherwise.
 */
- (MCWakeOnLanClusterFeatureMapAttribute * _Nullable)featureMapAttribute;

/**
 * @brief Returns non-nil pointer to MCWakeOnLanClusterClusterRevisionAttribute if supported, nil otherwise.
 */
- (MCWakeOnLanClusterClusterRevisionAttribute * _Nullable)clusterRevisionAttribute;
@end

// TargetNavigator cluster:

@interface MCTargetNavigatorCluster : MCCluster

// TargetNavigator cluster commands:

/**
 * @brief Returns non-nil pointer to MCTargetNavigatorClusterNavigateTargetCommand if supported, nil otherwise.
 */
- (MCTargetNavigatorClusterNavigateTargetCommand * _Nullable)navigateTargetCommand;

// TargetNavigator cluster attributes:

/**
 * @brief Returns non-nil pointer to MCTargetNavigatorClusterTargetListAttribute if supported, nil otherwise.
 */
- (MCTargetNavigatorClusterTargetListAttribute * _Nullable)targetListAttribute;

/**
 * @brief Returns non-nil pointer to MCTargetNavigatorClusterCurrentTargetAttribute if supported, nil otherwise.
 */
- (MCTargetNavigatorClusterCurrentTargetAttribute * _Nullable)currentTargetAttribute;

/**
 * @brief Returns non-nil pointer to MCTargetNavigatorClusterGeneratedCommandListAttribute if supported, nil otherwise.
 */
- (MCTargetNavigatorClusterGeneratedCommandListAttribute * _Nullable)generatedCommandListAttribute;

/**
 * @brief Returns non-nil pointer to MCTargetNavigatorClusterAcceptedCommandListAttribute if supported, nil otherwise.
 */
- (MCTargetNavigatorClusterAcceptedCommandListAttribute * _Nullable)acceptedCommandListAttribute;

/**
 * @brief Returns non-nil pointer to MCTargetNavigatorClusterAttributeListAttribute if supported, nil otherwise.
 */
- (MCTargetNavigatorClusterAttributeListAttribute * _Nullable)attributeListAttribute;

/**
 * @brief Returns non-nil pointer to MCTargetNavigatorClusterFeatureMapAttribute if supported, nil otherwise.
 */
- (MCTargetNavigatorClusterFeatureMapAttribute * _Nullable)featureMapAttribute;

/**
 * @brief Returns non-nil pointer to MCTargetNavigatorClusterClusterRevisionAttribute if supported, nil otherwise.
 */
- (MCTargetNavigatorClusterClusterRevisionAttribute * _Nullable)clusterRevisionAttribute;
@end

// MediaPlayback cluster:

@interface MCMediaPlaybackCluster : MCCluster

// MediaPlayback cluster commands:

/**
 * @brief Returns non-nil pointer to MCMediaPlaybackClusterPlayCommand if supported, nil otherwise.
 */
- (MCMediaPlaybackClusterPlayCommand * _Nullable)playCommand;

/**
 * @brief Returns non-nil pointer to MCMediaPlaybackClusterPauseCommand if supported, nil otherwise.
 */
- (MCMediaPlaybackClusterPauseCommand * _Nullable)pauseCommand;

/**
 * @brief Returns non-nil pointer to MCMediaPlaybackClusterStopCommand if supported, nil otherwise.
 */
- (MCMediaPlaybackClusterStopCommand * _Nullable)stopCommand;

/**
 * @brief Returns non-nil pointer to MCMediaPlaybackClusterStartOverCommand if supported, nil otherwise.
 */
- (MCMediaPlaybackClusterStartOverCommand * _Nullable)startOverCommand;

/**
 * @brief Returns non-nil pointer to MCMediaPlaybackClusterPreviousCommand if supported, nil otherwise.
 */
- (MCMediaPlaybackClusterPreviousCommand * _Nullable)previousCommand;

/**
 * @brief Returns non-nil pointer to MCMediaPlaybackClusterNextCommand if supported, nil otherwise.
 */
- (MCMediaPlaybackClusterNextCommand * _Nullable)nextCommand;

/**
 * @brief Returns non-nil pointer to MCMediaPlaybackClusterRewindCommand if supported, nil otherwise.
 */
- (MCMediaPlaybackClusterRewindCommand * _Nullable)rewindCommand;

/**
 * @brief Returns non-nil pointer to MCMediaPlaybackClusterFastForwardCommand if supported, nil otherwise.
 */
- (MCMediaPlaybackClusterFastForwardCommand * _Nullable)fastForwardCommand;

/**
 * @brief Returns non-nil pointer to MCMediaPlaybackClusterSkipForwardCommand if supported, nil otherwise.
 */
- (MCMediaPlaybackClusterSkipForwardCommand * _Nullable)skipForwardCommand;

/**
 * @brief Returns non-nil pointer to MCMediaPlaybackClusterSkipBackwardCommand if supported, nil otherwise.
 */
- (MCMediaPlaybackClusterSkipBackwardCommand * _Nullable)skipBackwardCommand;

/**
 * @brief Returns non-nil pointer to MCMediaPlaybackClusterSeekCommand if supported, nil otherwise.
 */
- (MCMediaPlaybackClusterSeekCommand * _Nullable)seekCommand;

/**
 * @brief Returns non-nil pointer to MCMediaPlaybackClusterActivateAudioTrackCommand if supported, nil otherwise.
 */
- (MCMediaPlaybackClusterActivateAudioTrackCommand * _Nullable)activateAudioTrackCommand;

/**
 * @brief Returns non-nil pointer to MCMediaPlaybackClusterActivateTextTrackCommand if supported, nil otherwise.
 */
- (MCMediaPlaybackClusterActivateTextTrackCommand * _Nullable)activateTextTrackCommand;

/**
 * @brief Returns non-nil pointer to MCMediaPlaybackClusterDeactivateTextTrackCommand if supported, nil otherwise.
 */
- (MCMediaPlaybackClusterDeactivateTextTrackCommand * _Nullable)deactivateTextTrackCommand;

// MediaPlayback cluster attributes:

/**
 * @brief Returns non-nil pointer to MCMediaPlaybackClusterCurrentStateAttribute if supported, nil otherwise.
 */
- (MCMediaPlaybackClusterCurrentStateAttribute * _Nullable)currentStateAttribute;

/**
 * @brief Returns non-nil pointer to MCMediaPlaybackClusterStartTimeAttribute if supported, nil otherwise.
 */
- (MCMediaPlaybackClusterStartTimeAttribute * _Nullable)startTimeAttribute;

/**
 * @brief Returns non-nil pointer to MCMediaPlaybackClusterDurationAttribute if supported, nil otherwise.
 */
- (MCMediaPlaybackClusterDurationAttribute * _Nullable)durationAttribute;

/**
 * @brief Returns non-nil pointer to MCMediaPlaybackClusterSampledPositionAttribute if supported, nil otherwise.
 */
- (MCMediaPlaybackClusterSampledPositionAttribute * _Nullable)sampledPositionAttribute;

/**
 * @brief Returns non-nil pointer to MCMediaPlaybackClusterPlaybackSpeedAttribute if supported, nil otherwise.
 */
- (MCMediaPlaybackClusterPlaybackSpeedAttribute * _Nullable)playbackSpeedAttribute;

/**
 * @brief Returns non-nil pointer to MCMediaPlaybackClusterSeekRangeEndAttribute if supported, nil otherwise.
 */
- (MCMediaPlaybackClusterSeekRangeEndAttribute * _Nullable)seekRangeEndAttribute;

/**
 * @brief Returns non-nil pointer to MCMediaPlaybackClusterSeekRangeStartAttribute if supported, nil otherwise.
 */
- (MCMediaPlaybackClusterSeekRangeStartAttribute * _Nullable)seekRangeStartAttribute;

/**
 * @brief Returns non-nil pointer to MCMediaPlaybackClusterActiveAudioTrackAttribute if supported, nil otherwise.
 */
- (MCMediaPlaybackClusterActiveAudioTrackAttribute * _Nullable)activeAudioTrackAttribute;

/**
 * @brief Returns non-nil pointer to MCMediaPlaybackClusterAvailableAudioTracksAttribute if supported, nil otherwise.
 */
- (MCMediaPlaybackClusterAvailableAudioTracksAttribute * _Nullable)availableAudioTracksAttribute;

/**
 * @brief Returns non-nil pointer to MCMediaPlaybackClusterActiveTextTrackAttribute if supported, nil otherwise.
 */
- (MCMediaPlaybackClusterActiveTextTrackAttribute * _Nullable)activeTextTrackAttribute;

/**
 * @brief Returns non-nil pointer to MCMediaPlaybackClusterAvailableTextTracksAttribute if supported, nil otherwise.
 */
- (MCMediaPlaybackClusterAvailableTextTracksAttribute * _Nullable)availableTextTracksAttribute;

/**
 * @brief Returns non-nil pointer to MCMediaPlaybackClusterGeneratedCommandListAttribute if supported, nil otherwise.
 */
- (MCMediaPlaybackClusterGeneratedCommandListAttribute * _Nullable)generatedCommandListAttribute;

/**
 * @brief Returns non-nil pointer to MCMediaPlaybackClusterAcceptedCommandListAttribute if supported, nil otherwise.
 */
- (MCMediaPlaybackClusterAcceptedCommandListAttribute * _Nullable)acceptedCommandListAttribute;

/**
 * @brief Returns non-nil pointer to MCMediaPlaybackClusterAttributeListAttribute if supported, nil otherwise.
 */
- (MCMediaPlaybackClusterAttributeListAttribute * _Nullable)attributeListAttribute;

/**
 * @brief Returns non-nil pointer to MCMediaPlaybackClusterFeatureMapAttribute if supported, nil otherwise.
 */
- (MCMediaPlaybackClusterFeatureMapAttribute * _Nullable)featureMapAttribute;

/**
 * @brief Returns non-nil pointer to MCMediaPlaybackClusterClusterRevisionAttribute if supported, nil otherwise.
 */
- (MCMediaPlaybackClusterClusterRevisionAttribute * _Nullable)clusterRevisionAttribute;
@end

// KeypadInput cluster:

@interface MCKeypadInputCluster : MCCluster

// KeypadInput cluster commands:

/**
 * @brief Returns non-nil pointer to MCKeypadInputClusterSendKeyCommand if supported, nil otherwise.
 */
- (MCKeypadInputClusterSendKeyCommand * _Nullable)sendKeyCommand;

// KeypadInput cluster attributes:

/**
 * @brief Returns non-nil pointer to MCKeypadInputClusterGeneratedCommandListAttribute if supported, nil otherwise.
 */
- (MCKeypadInputClusterGeneratedCommandListAttribute * _Nullable)generatedCommandListAttribute;

/**
 * @brief Returns non-nil pointer to MCKeypadInputClusterAcceptedCommandListAttribute if supported, nil otherwise.
 */
- (MCKeypadInputClusterAcceptedCommandListAttribute * _Nullable)acceptedCommandListAttribute;

/**
 * @brief Returns non-nil pointer to MCKeypadInputClusterAttributeListAttribute if supported, nil otherwise.
 */
- (MCKeypadInputClusterAttributeListAttribute * _Nullable)attributeListAttribute;

/**
 * @brief Returns non-nil pointer to MCKeypadInputClusterFeatureMapAttribute if supported, nil otherwise.
 */
- (MCKeypadInputClusterFeatureMapAttribute * _Nullable)featureMapAttribute;

/**
 * @brief Returns non-nil pointer to MCKeypadInputClusterClusterRevisionAttribute if supported, nil otherwise.
 */
- (MCKeypadInputClusterClusterRevisionAttribute * _Nullable)clusterRevisionAttribute;
@end

// ContentLauncher cluster:

@interface MCContentLauncherCluster : MCCluster

// ContentLauncher cluster commands:

/**
 * @brief Returns non-nil pointer to MCContentLauncherClusterLaunchContentCommand if supported, nil otherwise.
 */
- (MCContentLauncherClusterLaunchContentCommand * _Nullable)launchContentCommand;

/**
 * @brief Returns non-nil pointer to MCContentLauncherClusterLaunchURLCommand if supported, nil otherwise.
 */
- (MCContentLauncherClusterLaunchURLCommand * _Nullable)launchURLCommand;

// ContentLauncher cluster attributes:

/**
 * @brief Returns non-nil pointer to MCContentLauncherClusterAcceptHeaderAttribute if supported, nil otherwise.
 */
- (MCContentLauncherClusterAcceptHeaderAttribute * _Nullable)acceptHeaderAttribute;

/**
 * @brief Returns non-nil pointer to MCContentLauncherClusterSupportedStreamingProtocolsAttribute if supported, nil otherwise.
 */
- (MCContentLauncherClusterSupportedStreamingProtocolsAttribute * _Nullable)supportedStreamingProtocolsAttribute;

/**
 * @brief Returns non-nil pointer to MCContentLauncherClusterGeneratedCommandListAttribute if supported, nil otherwise.
 */
- (MCContentLauncherClusterGeneratedCommandListAttribute * _Nullable)generatedCommandListAttribute;

/**
 * @brief Returns non-nil pointer to MCContentLauncherClusterAcceptedCommandListAttribute if supported, nil otherwise.
 */
- (MCContentLauncherClusterAcceptedCommandListAttribute * _Nullable)acceptedCommandListAttribute;

/**
 * @brief Returns non-nil pointer to MCContentLauncherClusterAttributeListAttribute if supported, nil otherwise.
 */
- (MCContentLauncherClusterAttributeListAttribute * _Nullable)attributeListAttribute;

/**
 * @brief Returns non-nil pointer to MCContentLauncherClusterFeatureMapAttribute if supported, nil otherwise.
 */
- (MCContentLauncherClusterFeatureMapAttribute * _Nullable)featureMapAttribute;

/**
 * @brief Returns non-nil pointer to MCContentLauncherClusterClusterRevisionAttribute if supported, nil otherwise.
 */
- (MCContentLauncherClusterClusterRevisionAttribute * _Nullable)clusterRevisionAttribute;
@end

// ApplicationLauncher cluster:

@interface MCApplicationLauncherCluster : MCCluster

// ApplicationLauncher cluster commands:

/**
 * @brief Returns non-nil pointer to MCApplicationLauncherClusterLaunchAppCommand if supported, nil otherwise.
 */
- (MCApplicationLauncherClusterLaunchAppCommand * _Nullable)launchAppCommand;

/**
 * @brief Returns non-nil pointer to MCApplicationLauncherClusterStopAppCommand if supported, nil otherwise.
 */
- (MCApplicationLauncherClusterStopAppCommand * _Nullable)stopAppCommand;

/**
 * @brief Returns non-nil pointer to MCApplicationLauncherClusterHideAppCommand if supported, nil otherwise.
 */
- (MCApplicationLauncherClusterHideAppCommand * _Nullable)hideAppCommand;

// ApplicationLauncher cluster attributes:

/**
 * @brief Returns non-nil pointer to MCApplicationLauncherClusterCatalogListAttribute if supported, nil otherwise.
 */
- (MCApplicationLauncherClusterCatalogListAttribute * _Nullable)catalogListAttribute;

/**
 * @brief Returns non-nil pointer to MCApplicationLauncherClusterCurrentAppAttribute if supported, nil otherwise.
 */
- (MCApplicationLauncherClusterCurrentAppAttribute * _Nullable)currentAppAttribute;

/**
 * @brief Returns non-nil pointer to MCApplicationLauncherClusterGeneratedCommandListAttribute if supported, nil otherwise.
 */
- (MCApplicationLauncherClusterGeneratedCommandListAttribute * _Nullable)generatedCommandListAttribute;

/**
 * @brief Returns non-nil pointer to MCApplicationLauncherClusterAcceptedCommandListAttribute if supported, nil otherwise.
 */
- (MCApplicationLauncherClusterAcceptedCommandListAttribute * _Nullable)acceptedCommandListAttribute;

/**
 * @brief Returns non-nil pointer to MCApplicationLauncherClusterAttributeListAttribute if supported, nil otherwise.
 */
- (MCApplicationLauncherClusterAttributeListAttribute * _Nullable)attributeListAttribute;

/**
 * @brief Returns non-nil pointer to MCApplicationLauncherClusterFeatureMapAttribute if supported, nil otherwise.
 */
- (MCApplicationLauncherClusterFeatureMapAttribute * _Nullable)featureMapAttribute;

/**
 * @brief Returns non-nil pointer to MCApplicationLauncherClusterClusterRevisionAttribute if supported, nil otherwise.
 */
- (MCApplicationLauncherClusterClusterRevisionAttribute * _Nullable)clusterRevisionAttribute;
@end

// ApplicationBasic cluster:

@interface MCApplicationBasicCluster : MCCluster

// ApplicationBasic cluster commands:

// ApplicationBasic cluster attributes:

/**
 * @brief Returns non-nil pointer to MCApplicationBasicClusterVendorNameAttribute if supported, nil otherwise.
 */
- (MCApplicationBasicClusterVendorNameAttribute * _Nullable)vendorNameAttribute;

/**
 * @brief Returns non-nil pointer to MCApplicationBasicClusterVendorIDAttribute if supported, nil otherwise.
 */
- (MCApplicationBasicClusterVendorIDAttribute * _Nullable)vendorIDAttribute;

/**
 * @brief Returns non-nil pointer to MCApplicationBasicClusterApplicationNameAttribute if supported, nil otherwise.
 */
- (MCApplicationBasicClusterApplicationNameAttribute * _Nullable)applicationNameAttribute;

/**
 * @brief Returns non-nil pointer to MCApplicationBasicClusterProductIDAttribute if supported, nil otherwise.
 */
- (MCApplicationBasicClusterProductIDAttribute * _Nullable)productIDAttribute;

/**
 * @brief Returns non-nil pointer to MCApplicationBasicClusterApplicationAttribute if supported, nil otherwise.
 */
- (MCApplicationBasicClusterApplicationAttribute * _Nullable)applicationAttribute;

/**
 * @brief Returns non-nil pointer to MCApplicationBasicClusterStatusAttribute if supported, nil otherwise.
 */
- (MCApplicationBasicClusterStatusAttribute * _Nullable)statusAttribute;

/**
 * @brief Returns non-nil pointer to MCApplicationBasicClusterApplicationVersionAttribute if supported, nil otherwise.
 */
- (MCApplicationBasicClusterApplicationVersionAttribute * _Nullable)applicationVersionAttribute;

/**
 * @brief Returns non-nil pointer to MCApplicationBasicClusterAllowedVendorListAttribute if supported, nil otherwise.
 */
- (MCApplicationBasicClusterAllowedVendorListAttribute * _Nullable)allowedVendorListAttribute;

/**
 * @brief Returns non-nil pointer to MCApplicationBasicClusterGeneratedCommandListAttribute if supported, nil otherwise.
 */
- (MCApplicationBasicClusterGeneratedCommandListAttribute * _Nullable)generatedCommandListAttribute;

/**
 * @brief Returns non-nil pointer to MCApplicationBasicClusterAcceptedCommandListAttribute if supported, nil otherwise.
 */
- (MCApplicationBasicClusterAcceptedCommandListAttribute * _Nullable)acceptedCommandListAttribute;

/**
 * @brief Returns non-nil pointer to MCApplicationBasicClusterAttributeListAttribute if supported, nil otherwise.
 */
- (MCApplicationBasicClusterAttributeListAttribute * _Nullable)attributeListAttribute;

/**
 * @brief Returns non-nil pointer to MCApplicationBasicClusterFeatureMapAttribute if supported, nil otherwise.
 */
- (MCApplicationBasicClusterFeatureMapAttribute * _Nullable)featureMapAttribute;

/**
 * @brief Returns non-nil pointer to MCApplicationBasicClusterClusterRevisionAttribute if supported, nil otherwise.
 */
- (MCApplicationBasicClusterClusterRevisionAttribute * _Nullable)clusterRevisionAttribute;
@end

#endif /* MCClusterObjects_h */
